The Existential Crisis of Null Pointers
نویسندگان
چکیده
We present short programs that demonstrate the unsoundness of Java and Scala’s current type systems. In particular, these programs provide parametrically polymorphic functions that can turn any type into any type without (down)casting. Fortunately, parametric polymorphism was not integrated into the Java Virtual Machine (JVM), so these examples do not demonstrate any unsoundness of the JVM. Nonetheless, we discuss broader implications of these findings on the field of programming languages.
منابع مشابه
Proceedings of the RESOLVE Workshop 2002
The "original" checked pointers component for C++ [Pike00] did a very good job of detecting many precondition violations for raw C++ pointers, including dereferencing a NULL or dangling pointer and deleting a dangling pointer. However, the syntax for invoking new and delete was slightly different than the standard syntax. These differences added extra confusion to student understanding of C++ p...
متن کاملVerifying Time Bounds for General Function Pointers
We develop a logic of explicit time resource bounds for a language with function pointers and semantic assertions. We apply our logic to examples containing nontrivial “higher-order” uses of function pointers and we prove soundness with respect to a standard operational semantics. Our core technique is very compact and may be applicable to other resource bounding problems, and is the first appl...
متن کاملTime Bounds for General Function Pointers
We develop a logic of explicit time resource bounds for a language with function pointers and semantic assertions. We apply our logic to examples containing nontrivial “higher-order” uses of function pointers and we prove soundness with respect to a standard operational semantics. Our core technique is very compact and may be applicable to other resource bounding problems, and is the first appl...
متن کاملOld age from an existential-analytical perspective.
Aging confronts humans with specific existential issues. They frequently cause suffering in old age. Not dealing with or insufficiently dealing with these existential themes may result in crisis, psychological disorders, and illness. By integrating existential themes of aging into the understanding of one's own life, the process of aging contributes to personal maturity.
متن کاملNull Values in Programming Languages
Even though many programming languages support a distinguished null or nil value for pointer or reference types to indicate that a pointer or reference currently does not refer to any object, none of these languages supports null values as a general concept for all types of the language. This inability to explicitly express a null or missing value raises several questions when defining the sema...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2016